package gruppe1projekt.ModelLayer;

import java.util.ArrayList;

public class RentContainer
{
    private ArrayList<RentableItem> RentableItems;
    private static RentContainer instance;

    /**
     * Constructor.
     */
    private RentContainer()
    {
        RentableItems = new ArrayList<RentableItem>();
    }

    /**
     * Get method.
     */
    public ArrayList<RentableItem> getRentableItems()
    {
        return RentableItems;
    }

    /**
     * Add RentableItem.
     */
    public void addRentableItem(RentableItem newRentableItem)
    {
        RentableItems.add(newRentableItem);
    }

    /**
     * Static method that gives an instance of the class.
     */
    public static RentContainer getInstance()
    {
        if (instance == null)
        {
            instance = new RentContainer();
        }
        return instance;
    }

    /**
     * Read RentableItem
     */
    public RentableItem readRentableItem(long serialNumber)
    {
        int index = 0;
        RentableItem rent = null;
        boolean found = false;
        while (!found && index < RentableItems.size())
        {
            if (RentableItems.get(index).getSerialNumber() == (serialNumber))
            {
                rent = RentableItems.get(index);
                found = true;
            }
            index++;
        }
        return rent;
    }

    /**
     * Delete RentableItem
     */
    public void deleteRentableItem(long serialNumber)
    {
        int index = 0;
        int storeIndex = 0;
        boolean found = false;
        while (!found && index < RentableItems.size())
        {
            if (RentableItems.get(index).getSerialNumber() == (serialNumber))
            {
                storeIndex = index;
                found = true;
            }
            index++;
        }
        RentableItems.remove(storeIndex);
    }

    public void updateRentableItem(RentableItem rentableItem)
    {
        RentableItem oldItem = readRentableItem(rentableItem.getSerialNumber());
        oldItem.setType(rentableItem.getType());
        oldItem.setDescription(rentableItem.getDescription());
        oldItem.setDayPrice(rentableItem.getDayPrice());
    }
    }
